/*
 * jPozisyon
 * http://www.karalamalar.net/
 *
 * Geliştirici: İzzet Emre Erkan (c) 2009-2010 Tüm hakları saklıdır.
 * Creative Commons Attribution-Share Alike 3.0 Unported License ile lisanslanmıştır
 * http://creativecommons.org/licenses/by-sa/3.0/
 *
 * Kullanım: $('secici').ust() ile nesnenin üst pozisyonunu (top)
             $('secici').sol() ile nesnenin sol pozisyonunu (left)
             $('secici').pozisyon() ile nesnenin üst ve sol pozisyonlarını obje olarak döndürür.
             Parametre olarak başka bir nesne verildiğinde, ilgili nesneye bağıl olarak pozisyon bilgilerini döndürür.
             örnek: $('secici-1').ust($('secici-2')) ya da örnek: $('secici-1').pozisyon(document.getElementById('secici-2'))
 *
 * Son değişiklik tarihi: 2010-02-07 10:36:24 +0200 (Paz, 07 Şub 2010)
 * Revizyon: 5
 */
(function($){  
  $.fn.extend({
    ust: function(obj) {
      var o = pozisyonBul(this.get(0));
      return obj ? o - pozisyonBul(obj) : o;
    },
    sol: function(obj) {
      var o = pozisyonBul(this.get(0),true);
      return obj ? o - pozisyonBul(obj,true) : o;
    },
    pozisyon: function(obj) {
      var poz = {},o;
      
      o = pozisyonBul(this.get(0));
      poz.ust = obj ? o - pozisyonBul(obj) : o;
      
      o = pozisyonBul(this.get(0),true);
      poz.sol = obj ? o - pozisyonBul(obj,true) : o;
      
      return poz;
    }
  });
  function pozisyonBul(o,l){
    o = o instanceof jQuery ? o.get(0) : $(o).get(0);
    var e = o;
    var x = 0;
    if (o.offsetParent) {
      x = l ? o.offsetLeft : o.offsetTop;
      while (o = o.offsetParent){
        if (o.offsetParent == document.body && o.style.position == 'absolute')
          break;
        x += l ? o.offsetLeft : o.offsetTop;
      }
    }
    do {
      if (! /^body|html$/i.test(e.tagName))
        x -= (l ? e.scrollLeft : e.scrollTop ) || 0;
    } while (e = e.parentNode);
    return x;
  }
})(jQuery);